from tkinter import *
from random import randint

global_data = {'try_count': 0, 'rand_num': 0}
global_data['rand_num'] = randint(1, 128)

root = Tk()
root.title('Угадай число')
root.resizable(False, False)
root.geometry('500x300')



def get_num(num: str):
    if num.isdigit() and 0 < int(num) < 129:
        result.config(text='')
        return int(num)
    else:
        return 0
    
def click_event(event, g_d):
    x = get_num(e_field.get())
    if x == 0:
        result.config(text='Что-то вы ввели не то, нужно целое число от 1 до 128!')
        e_field.delete(0, END)
    else:
        g_d['try_count'] += 1
        if x < g_d['rand_num']:
            result.config(text='Загаданное число больше, попробуйте ещё разок')
            e_field.delete(0, END)
        elif x > g_d['rand_num']:
            result.config(text='Загаданное число меньше, попробуйте ещё разок')
            e_field.delete(0, END)
        elif x == g_d['rand_num']:
            result.config(text=f"Вы угадали число: {str(x)}, поздравляем!\nКоличество ваших попыток: {str(g_d['try_count'])} \n Я загадал новое число, можешь испытать удачу снова")
            e_field.delete(0, END)
            g_d['rand_num'] = randint(1, 128)
            g_d['try_count'] = 0
    return 0

welcome = Label(text='Добро пожаловать в числовую угадайку!\n', font='50')
welcome.pack()

enter_num = Label(text='Я загадал число от 1 до 128, отгадай и введи его ниже:\n', font='20')
enter_num.pack()

e_field = Entry(root, font='50', justify=CENTER)
e_field.pack()

result = Label(root, font='50', justify=CENTER, fg='red')
result.pack()


b = Button(root, height=1, width=10, text="Угадать")
b.bind('<Button-1>', lambda e, global_d = global_data: click_event(e, global_d))
b.pack()

root.mainloop()